home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.xml;
-
- import com.extensibility.xml.dt.DataTypeFactory;
- import com.extensibility.xml.dt.DataTypeIntf;
- import java.util.Enumeration;
-
- public class RELAXWriter extends SchemaWriter {
- ElemProxy elemProxy = new ElemProxy(this);
- PEntityProxy pEntityProxy = new PEntityProxy(this);
-
- public RELAXWriter(SchemaIntf var1) {
- super(var1, var1.getURI());
- }
-
- public RELAXWriter(SchemaIntf var1, URI var2) {
- super(var1, var2);
- }
-
- public void writeAnnotation(SXE var1, Enumeration var2) {
- if (var2 != null && var2.hasMoreElements()) {
- var1.writeElem("annotation", -1);
-
- while(var2.hasMoreElements()) {
- Comment var3 = (Comment)var2.nextElement();
- var1.writeElem("documentation", -1);
- if (var3.getKind().length() > 0) {
- var1.writeAttr("usage", var3.getKind());
- }
-
- var1.writeText(var3.getComment(true));
- var1.flush("documentation");
- }
-
- var1.flush("annotation");
- }
- }
-
- void writeDataTypeAttr(SXE var1, DataTypeIntf var2) {
- if (var2 == null) {
- var2 = DataTypeFactory.createDataType(DataTypeIntf.STRING);
- }
-
- String var3 = BaseFlavor.getSourceCode("xsd", ((DataTypeIntf)var2).getSource());
- if (var3 != null) {
- var1.writeAttr("type", var3);
- }
-
- }
-
- public void writeDataTypeFacets(SXE var1, BaseDeclaration var2, DataTypeIntf var3) {
- if (var3 != null) {
- XSDLWriter.writeDataTypeFacets(var1, var2, var3);
- }
-
- }
-
- public void writeModel(SXE var1, boolean var2, ContentModel var3) {
- ContentModelTerm var4 = var3.getRootGroup();
- if (var4 == null) {
- ContentModelTermEnum var5 = ((ContentModelTerm)var3).getTerms(false);
-
- while(var5.hasMoreElements()) {
- this.writeParticle(var1, var2, (ContentModelTerm)var5.nextElement());
- }
- } else if (var4.getOwner() != var3.getOwner()) {
- var1.writeElem("hedgeRef", -1, true);
- var1.writeAttr("label", var4.getOwner().getName());
- } else {
- this.writeParticle(var1, var2, var4);
- }
-
- }
-
- public void writeParticle(SXE var1, boolean var2, ContentModelTerm var3) {
- if (var3 != null) {
- if (var3.isOwned()) {
- var1.writeElem("hedgeRef", -1, true);
- var1.writeAttr("label", var3.getOwner().getName());
- } else if (var3.isOccuranceOnly()) {
- ContentModelTerm var4 = var3.firstTerm();
- var1.writeElem("hedgeRef", -1, true);
- var1.writeAttr("label", var4.getOwner().getName());
- if (var3.getOccurance() != 0) {
- var1.writeAttr("occurs", var3.getOccuranceAsString(true, false));
- }
- } else if (var3.isGroup()) {
- String var6 = var3.isSeq() ? "sequence" : "choice";
- var1.writeElem(var6, -1);
- if (var3.getOccurance() != 0) {
- var1.writeAttr("occurs", var3.getOccuranceAsString(true, false));
- }
-
- ContentModelTermEnum var5 = var3.getTerms(false);
-
- while(var5.hasMoreElements()) {
- this.writeParticle(var1, var2, (ContentModelTerm)var5.nextElement());
- }
-
- var1.flush(var6);
- } else if (!var3.isPCDATATerm()) {
- var1.writeElem("ref", -1, true);
- var1.writeAttr("label", var3.getTerm());
- if (var3.getOccurance() != 0) {
- var1.writeAttr("occurs", var3.getOccuranceAsString(true, false));
- }
- }
-
- }
- }
-
- public void writeClauseBody(SXE var1, boolean var2, AttributeDeclaration.Owner var3) {
- Enumeration var4 = var3.getAttributeGroup().getAttributes(false);
-
- while(var4.hasMoreElements()) {
- AttributeGroupMember var5 = (AttributeGroupMember)var4.nextElement();
- if (var5 instanceof AttributeGroup) {
- this.writeAttributeRef(var1, (AttributeGroup)var5);
- }
- }
-
- var4 = var3.getAttributeGroup().getAttributes(false);
-
- while(var4.hasMoreElements()) {
- AttributeGroupMember var7 = (AttributeGroupMember)var4.nextElement();
- if (var7 instanceof AttributeDeclaration) {
- this.writeAttribute(var1, var2, (AttributeDeclaration)var7);
- }
- }
-
- }
-
- public void writeAttributeRef(SXE var1, AttributeGroup var2) {
- var1.writeElem("ref", -1, true);
- var1.writeAttr("role", var2.getName());
- }
-
- public void writeAttribute(SXE var1, boolean var2, AttributeDeclaration var3) {
- var1.writeElem("attribute", -1);
- var1.writeAttr("name", ((BaseDeclaration)var3).getName());
- if (var3.getRequired()) {
- var1.writeAttr("required", "true");
- }
-
- this.writeDataTypeAttr(var1, var3.getDataType());
- if (var2) {
- this.writeAnnotation(var1, ((BaseDeclaration)var3).getComments());
- }
-
- this.writeDataTypeFacets(var1, var3, var3.getDataType());
- var1.flush("attribute");
- }
-
- protected SchemaWriter.DeclWriterProxyIntf createProxy(ElementDeclaration var1) {
- this.elemProxy.setDecl(var1);
- return this.elemProxy;
- }
-
- protected SchemaWriter.DeclWriterProxyIntf createProxy(ParameterEntityDeclaration var1) {
- this.pEntityProxy.setDecl(var1);
- return this.pEntityProxy;
- }
-
- protected void writeHeader(SXE var1) {
- var1.writeComment("Generated by XML Authority. ");
- var1.writeElem("module", -1);
- var1.writeAttr("moduleVersion", "1.2");
- var1.writeLineBreak();
- var1.writeAttr("relaxCore", "1.0");
- var1.writeLineBreak();
- URI var2 = super.schema.getNamespace();
- String var3 = var2 == null ? super.schema.getURI().getFullName() : var2.toSource();
- var1.writeAttr("targetNamespace", var3);
- var1.writeLineBreak();
- var1.writeAttr("xmlns", "http://www.xml.gr.jp/xmlns/relaxCore");
- var1.writeElem("interface", -1);
- String var4 = SchemaUtilities.getBestRootName(super.schema);
- if (var4 != null) {
- var1.writeElem("export", -1, true);
- var1.writeAttr("label", var4);
- }
-
- var1.flush("interface");
- }
-
- protected void writeSchemaComments(SXE var1) {
- Enumeration var2 = super.schema.getComments();
- this.writeAnnotation(var1, var2);
- }
-
- protected void writeIncludes(SXE var1, Enumeration var2) {
- }
-
- protected void writeNamespaces(SXE var1, Enumeration var2) {
- }
- }
-